package exception;

/**
 *
 * throw关键字,用来主动对外抛出一个异常
 * 通常下列情况我们会主动对外抛出一个异常:
 *
 * 1.:当前代码片段出现了一个异常,但是该异常不应该被当前代码片段解决时可以对外抛出.这是责任制问题.
 *
 * 2.:当前代码出现了满足语法但是不满足业务场景时,可以主动对外抛出异常告知不应该这样做.
 *
 */
public class ThrowDemo {
    public static void main(String[] args) {
        Person ps = new Person();
        /*
            当调用一个含有throw声明异常抛出的方法时，编译器要求必须处理这个异常，否则编译不通过
            处理方式有两种:
            1.:使用try-catch捕获该异常(Surround with try-catch)
            2.:在当前方法上继续使用throw声明该异常的抛出
                具有选取那种要结合实际情况的责任制问题而定.
         */
        try {
            ps.setAge(1000);//满足语法,但是不满足业务.
        } catch (IllegalAgeException e) {
            e.printStackTrace();
        }
        System.out.println(ps.getAge());
        /*
            main 上写 throes 会被虚拟机 dikiu
         */






    }
}
